//-----------------------------------------------------
// nebulaApplication.h
//-----------------------------------------------------

/**
 * comment here
 */

#pragma once

#include "application.h"

#include <kernel/nkernelserver.h>
#include <kernel/nfileserver2.h>
#include <resource/nresourceserver.h>
#include <gfx2/ngfxserver2.h>
#include <gfx2/ncamera2.h>

namespace application {

	class CNebulaApplication : public CApplication {
	public:

		nKernelServer *kernelServer;
		nGfxServer2 *gfxServer;
		nRef<nResourceServer> refResourceServer;
		nRef<nGfxServer2> refGfxServer;

	protected:

		nCamera2 gfxCamera;

	public:

		// Class constructor
		CNebulaApplication();

		// Class destructor
		virtual ~CNebulaApplication();

		// Initialize the application
		virtual bool init();

		// End the application
		virtual void end();

		// Run the application
		virtual void run();

	protected:

		// Initialize Nebula
		bool initNebula();

		// End Nebula
		void endNebula();

	}; // class CNebulaApplication

} // namespace application